from hopfield import *
from generadores import *
from rn_utils import *

def aux(C,name):

	p = generarSimilares(C[0],1,16)[0]

	print "red con patrones "+name
	print 'memoria base: ' + ArrayToBinary(C[0])
	print 'patron similar: ' + ArrayToBinary(p)

	f = open('resultados/ej6/'+name+'.out','w')
	net = Hopfield(SIZE, C)
	e,s = net.Evaluar(p)
	print 'converge a: ' + ArrayToBinary(s)
	print >> f, ListToString(e)
	f.close()

def ej6():

	random.seed(SEED)
	
	ortogonales = generarOrtogonales(6)
	pseudo_ortogonales = generarSemiOrtogonal(6)
	similares = generarSimilares(generarAleatorios(1)[0],6,32)

	aux(ortogonales,'ortogonales')
	aux(pseudo_ortogonales,'pseudo_ortogonales')
	aux(similares,'similares')
